package com.bgs.travelapp.tourNote.controller;

import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.result.CommonResult;
import com.bgs.travelapp.tourNote.eneity.TourNoteEntity;
import com.bgs.travelapp.tourNote.service.TourNoteService;
import com.bgs.travelapp.util.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartRequest;

import javax.annotation.Resource;

@RestController
@CrossOrigin
@RequestMapping("/tourNote")
/**
 * hbx 2022年8月4日09:24:01
 * 前端游记添加展示 (前端)
 */
public class TourNoteController {

    @Resource
    RedisUtil redisUtil;

    @Autowired
    TourNoteService tourNoteService;

    /**
     * 添加游记（前端）
     * hbx 2022-7-26 16:42:25
     * @param multipartRequest
     * @param tourNoteEntity
     * @return
     */
    @PostMapping("/saveTourNote")
    public CommonResult saveTourNote(MultipartRequest multipartRequest, TourNoteEntity tourNoteEntity){
        return CommonResult.ok(tourNoteService.saveTourNote(multipartRequest,tourNoteEntity));
    }

    /**
     *前端展示游记详情信息（前端）
     * hbx 2022年8月3日08:30:54
     * @param pageRequest
     * @return
     */
    @RequestMapping("/getTourNoteAll")
    public CommonResult getTourNoteAll(PageRequest pageRequest){
        return CommonResult.ok(tourNoteService.getTourNoteAll(pageRequest));
    }

    /**
     * 获取游记详情根据游记id（前端）
     * hbx 2022-8-3 14:45:54
     * @param id
     * @return
     */
    @GetMapping("/getToueNoteById")
    public CommonResult getToueNoteById(Integer id){
        return CommonResult.ok(tourNoteService.getToueNoteById(id));
    }

    /**
     * 点击查看游记详情时修改浏览量（前端展示）
     * hbx 2022年8月4日16:53:05
     * @param tourNoteEntity
     * @return
     */
    @PutMapping("/updatetTourNote")
    public CommonResult updatetTourNote(TourNoteEntity tourNoteEntity){
        return CommonResult.ok(tourNoteService.updatetTourNote(tourNoteEntity));
    }

    /**
     * 前端我的主页展示游记信息 根据用户id（前端）
     * hbx 2022-8-15 08:45:13
     * @param userId
     * @return
     */
    @RequestMapping("/getTourNoteAlls")
    public CommonResult getTourNoteAlls(Integer userId){
        return CommonResult.ok(tourNoteService.getTourNoteAlls(userId));
    }


    /**
     * 前端我的主页删除游记信息 根据游记id（前端）
     * hbx 2022-8-8 09:46:57
     * @param id
     * @return
     */
    @DeleteMapping("deleteTourNoteById")
    public CommonResult deleteTourNoteById(Integer id){
        return CommonResult.ok(tourNoteService.deleteTourNoteById(id));
    }


    /**
     *前端我的主页修改游记信息（前端）
     * hbx 2022年8月8日14:17:53
     * @param multipartRequest
     * @param tourNoteEntity
     * @return
     */
        @PutMapping("/updateTourNoteById")
    public CommonResult updateTourNoteById(MultipartRequest multipartRequest,TourNoteEntity tourNoteEntity){
        return CommonResult.ok(tourNoteService.updateTourNoteById(multipartRequest,tourNoteEntity));
    }

    /**
     * 根据城市id查询游记信息
     * hbx 2022年8月12日09:25:02
     * @param pageRequest
     * @param cityId
     * @return
     */
    @RequestMapping("/getTourNoteAllByCityId")
    public CommonResult getTourNoteAllByCityId(PageRequest pageRequest,Integer cityId){
        return CommonResult.ok(tourNoteService.getTourNoteAllByCityId(pageRequest,cityId));
    }


    /**
     * 分页 根据游记标题,游记作者查询游记信息（后端）
     * hbx 2022年8月18日17:05:19
     * @param pageRequest
     * @param title
     * @param author
     * @return
     */
    @GetMapping("/getTravelsVague")
    public CommonResult getTravelsVague(PageRequest pageRequest,String title,String author,String createTime,String releaseTypeId){
        return CommonResult.ok(tourNoteService.getTravelsVague(pageRequest,title,author,createTime,releaseTypeId));
    }

    /**
     * 分页 全查游记信息（后端）
     * hbx 2022年8月18日17:08:25
     * @param pageRequest
     * @return
     */
    @RequestMapping("/getTravelsAll")
    public CommonResult getTravelsAll(PageRequest pageRequest){
        return CommonResult.ok(tourNoteService.getTravelsAll(pageRequest));
    }

    /**
     * 根据游记id删除游记信息（后端）
     * hbx 2022年8月18日16:09:58
     * @param id
     * @return
     */
    @DeleteMapping("deleteTravelsById")
    public CommonResult deleteTravelsById(Integer id){
        return CommonResult.ok(tourNoteService.deleteTravelsById(id));
    }


    /**
     * 修改游记审批状态（后端）
     * hbx 2022年8月22日10:56:48
     * @param tourNoteEntity
     * @return
     */
    @PutMapping("/updateTourNoteType")
    public CommonResult updateTourNoteType(TourNoteEntity tourNoteEntity){
        return CommonResult.ok(tourNoteService.updateTourNoteType(tourNoteEntity));
    }

    /**
     * 修改发布滑块信息 (后端)
     * hbx 2022年8月22日11:32:49
     * @param tourNoteEntity
     * @return
     */
    @PutMapping("/updateOpenPrivate")
    public CommonResult updateOpenPrivate(@RequestBody TourNoteEntity tourNoteEntity){
        return CommonResult.ok(tourNoteService.updateOpenPrivate(tourNoteEntity));
    }

    /**
     * 将审批失败原因通过邮箱发送给用户（后端管理）
     * hbx 2022年8月23日09:19:16
     * @param mail
     */
    @GetMapping("/emailReply")
    public void emailReply(String mail,Integer id){
        tourNoteService.emailReply(mail,id);
    }
}
